bugfix(audiomanager): Fix dummy audio manager implementation for failing audio length script conditions in headless mode#2313
Conversation
7751f9e to
477d80b
Compare
|
| Filename | Overview |
|---|---|
| Core/GameEngine/Include/Common/GameAudio.h | Removes the old AudioManagerDummy class (which returned -1 for getFileLengthMS), replacing it with the new MilesAudioManagerDummy in MilesAudioManager.h. |
| Core/GameEngineDevice/Include/MilesAudioDevice/MilesAudioManager.h | Introduces MilesAudioManagerDummy, which inherits from MilesAudioManager rather than the base AudioManager, so the parent's openDevice() and getFileLengthMS() are used to return real audio durations in headless mode. |
| Generals/Code/GameEngine/Source/Common/GameEngine.cpp | Simplifies headless-mode instantiation — inline ternary moved into factory methods; createAudioManager(m_headless) and createRadar(m_headless) replace manual NEW AudioManagerDummy/NEW RadarDummy expressions. |
| Generals/Code/GameEngineDevice/Include/Win32Device/Common/Win32GameEngine.h | Implements createRadar(Bool dummy) and createAudioManager(Bool dummy) inline, returning the appropriate real or dummy subsystem; mirrors the pattern already used for createParticleSystemManager. |
| GeneralsMD/Code/GameEngine/Source/Common/GameEngine.cpp | Same refactoring as the Generals GameEngine.cpp — factory calls updated to pass m_headless flag, removing inline ternary allocation logic from init(). |
| GeneralsMD/Code/GameEngineDevice/Include/Win32Device/Common/Win32GameEngine.h | Mirrors the Generals Win32GameEngine.h changes — factory inline implementations updated with Bool dummy parameter and MilesAudioManagerDummy dispatch. |
Reviews (6): Last reviewed commit: "Merge branch 'main' into fix_dummy_audio..." | Re-trigger Greptile
Core/GameEngineDevice/Include/MilesAudioDevice/MilesAudioManager.h
Outdated
Show resolved
Hide resolved
Core/GameEngineDevice/Include/MilesAudioDevice/MilesAudioManager.h
Outdated
Show resolved
Hide resolved
Core/GameEngineDevice/Include/MilesAudioDevice/MilesAudioManager.h
Outdated
Show resolved
Hide resolved
GeneralsMD/Code/GameEngineDevice/Include/Win32Device/Common/Win32GameEngine.h
Outdated
Show resolved
Hide resolved
Core/GameEngineDevice/Include/MilesAudioDevice/MilesAudioManager.h
Outdated
Show resolved
Hide resolved
GeneralsMD/Code/GameEngineDevice/Include/Win32Device/Common/Win32GameEngine.h
Outdated
Show resolved
Hide resolved
Core/GameEngineDevice/Include/MilesAudioDevice/MilesAudioManager.h
Outdated
Show resolved
Hide resolved
|
Addressed feedback. |
Core/GameEngineDevice/Include/MilesAudioDevice/MilesAudioManager.h
Outdated
Show resolved
Hide resolved
Changed TSH comment and uncommented functions from the base class.
9432bea to
c439704
Compare
|
Replicated in Generals. |
Our current implementation of dummy audio manager is incomplete, because it cannot return the actual length of audio files. Replays will mismatch if they contain scripts that rely on this.
TODO: